export class EnumManager {
  constructor(enums) {
    this.enums = enums;
  }

  // 根据值获取名称
  getName(value) {
    return (
      Object.keys(this.enums).find((key) => this.enums[key] === value) || null
    );
  }

  // 根据名称获取值
  getValue(name) {
    return this.enums.hasOwnProperty(name) ? this.enums[name] : null;
  }

  // 获取所有枚举的值
  getValues() {
    return Object.values(this.enums);
  }

  // 获取所有枚举的名称
  getNames() {
    return Object.keys(this.enums);
  }

  // 转换为 {key: name, value: value} 格式的数组
  toKeyValueArray(keyName = "label", valueName = "value") {
    return Object.entries(this.enums).map(([key, value]) => ({
      [keyName]: value,
      [valueName]: Number(key),
    }));
  }
}
